/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tipos;

/**
 *
 * Classe que representa o domínio telefone.
 * @author Lucas de Melo
 **/

public class Telefone {

    /**
     * Constante que representa o tamanho de um número de telefone valido.
     */
    private static final int TAM_TELEFONE = 10;
    /**
    * O método validar é responsável por validar um determinado telefone
    * de acordo com os padrões especificados, isto é 10 dígitos.
    * @param telefone Corresponde à data a ser validada
    * @exception NullPointerException
    * @exception IllegalArgumentException
    */
    public static void validar(final String telefone) {
        if (telefone == null) {
            throw new NullPointerException("Telefone nulo.");
        }
        if (telefone.length() != TAM_TELEFONE) {
            throw new IllegalArgumentException("Telefone inválido, possui"
                    + " tamanho ilegal");
        }
        for (int i = 0; i < telefone.length(); i++) {
            if (!Character.isDigit(telefone.charAt(i))) {
                throw new IllegalArgumentException("Telefone inválido"
                       + " não é composto apenas por dígitos");
            }
        }
    }
}
